﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace kb_24_the_game
{
    internal class Biertje : ISprite
    {
        #region variabele declaratie

        public Texture2D texture;

        public GraphicsDevice graphics { get; set; }

        public SpriteBatch spriteBatch { get; set; }

        public ContentManager content { get; set; }

        public Vector2 position { get; set; }

        public int aantalBiertjes;
        int level = 0;
        int maxBreedte = 0;
        public int snelheid;
        public Vector2 checkSpelerPosition;
        private SpriteFont font;

        #endregion variabele declaratie

        public Biertje(ContentManager content, Vector2 position, int level)
        {
            this.content = content;
            this.position = position;
            this.level = level;
            snelheid = 3;
            font = content.Load<SpriteFont>("AlgemeneTextures/tussenSchermTekst");
            Load();
        }

        public void Load()
        {
            texture = content.Load<Texture2D>("AlgemeneTextures/beer");
        }

        public void Update(GameTime gameTime)
        {
        }

        public void BeweegLinks()
        {
            position += new Vector2(snelheid, 0);
        }

        public void BeweegRechts()
        {
            position -= new Vector2(snelheid, 0);
        }

        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(texture, position, Color.White);
            spriteBatch.DrawString(font, "Biertjes: " + aantalBiertjes + " / 5", new Vector2(550, 25), Color.White);
            if (aantalBiertjes < 5)
            {
                if (position.X >= checkSpelerPosition.X)
                {
                    spriteBatch.DrawString(font, "Volgende biertje rechts.", new Vector2(30, 30), Color.White);
                }
                else
                {
                    spriteBatch.DrawString(font, "Volgende biertje links.", new Vector2(30, 30), Color.White);
                }
            }
            else
            {
                if (level == 1)
                {
                    spriteBatch.DrawString(font, "Je portemonnee ligt aan het einde!", new Vector2(30, 30), Color.White);
                }
                if (level == 2)
                {
                    spriteBatch.DrawString(font, "Deur van de discotheek is nu open!", new Vector2(30, 30), Color.White);

                }
                if (level == 3)
                {
                    spriteBatch.DrawString(font, "Je jas ligt bij de garderobe!", new Vector2(30, 30), Color.White);
                }
                if (level == 4)
                {
                    spriteBatch.DrawString(font, "De trein vertrekt zo!", new Vector2(30, 30), Color.White);
                }
            }
        }

        public void Geraakt(int offset, int maxBreedte)
        {
            aantalBiertjes++;
            if (aantalBiertjes < 5)
            {
                Random rnd = new Random();
                this.maxBreedte = maxBreedte;
                int X = rnd.Next(50, maxBreedte - 800);
                X = X + offset;
                int Y = rnd.Next(265, 400);
                position = new Vector2(X, Y);
            }
            else
            {
                position = new Vector2(1900, 1900);
            }
        }

        public void CheckPositionsSpelerBiertje(Vector2 spelerPosition)
        {
            checkSpelerPosition = spelerPosition;
        }
        public void ResetBiertje(int offset, int maxBreedte)
        {
            if (aantalBiertjes >= 5)
            {
                aantalBiertjes = 0;
                Random rnd = new Random();
                this.maxBreedte = maxBreedte;
                int X = rnd.Next(50, maxBreedte - 800);
                X = X + offset;
                int Y = rnd.Next(265, 400);
                position = new Vector2(X, Y);
            }
            else
            {
                aantalBiertjes = 0;
            }

        }
    }
}